6.17 --resume - 恢复特定会话

6 分钟阅读

概述#

--resume 标志允许您恢复之前保存的特定会话。这对于继续中断的工作、回顾历史对话或在不同设备间同步会话非常有用。

基本语法#

bash
claude --resume <会话ID>

使用场景#

1. 恢复中断的会话#

bash
# 恢复之前中断的会话 claude --resume session-abc123 # 继续之前的工作

2. 回顾历史对话#

bash
# 查看并恢复历史会话 claude --resume session-xyz789 # 回顾之前的讨论

3. 在不同设备间同步#

bash
# 在设备 A 上保存会话 claude --session-id my-session # 在设备 B 上恢复会话 claude --resume my-session

4. 分支开发#

bash
# 从主会话创建分支 claude --resume main-session # 在新分支上工作 claude --session-id branch-session

高级用法#

1. 与其他标志组合#

bash
# 恢复会话 + 指定模型 claude --resume session-abc123 --model opus # 恢复会话 + 自定义系统提示 claude --resume session-abc123 --system-prompt "你是一位 Python 专家" # 恢复会话 + 限制工具 claude --resume session-abc123 --allowedTools "Read" "Grep"

2. 会话管理#

bash
#!/bin/bash # session-manager.sh # 列出所有会话 claude --list-sessions # 恢复特定会话 SESSION_ID=$1 claude --resume "$SESSION_ID"

3. 会话备份#

bash
#!/bin/bash # backup-session.sh SESSION_ID=$1 BACKUP_DIR="backups/sessions" # 创建备份目录 mkdir -p "$BACKUP_DIR" # 备份会话 claude --export-session "$SESSION_ID" > "$BACKUP_DIR/$SESSION_ID.json" echo "会话已备份到 $BACKUP_DIR/$SESSION_ID.json"

4. 会话迁移#

bash
#!/bin/bash # migrate-session.sh OLD_SESSION=$1 NEW_SESSION=$2 # 导出旧会话 claude --export-session "$OLD_SESSION" > temp-session.json # 导入为新会话 claude --import-session temp-session.json --session-id "$NEW_SESSION" # 清理临时文件 rm temp-session.json echo "会话已迁移从 $OLD_SESSION$NEW_SESSION"

实际应用示例#

示例 1: 项目开发会话#

bash
#!/bin/bash # project-session.sh PROJECT=$1 SESSION_ID="project-$PROJECT-$(date +%Y%m%d)" # 检查会话是否存在 if claude --session-exists "$SESSION_ID"; then echo "恢复会话: $SESSION_ID" claude --resume "$SESSION_ID" else echo "创建新会话: $SESSION_ID" claude --session-id "$SESSION_ID" fi

示例 2: 多阶段任务#

bash
#!/bin/bash # multi-stage-task.sh TASK=$1 # 阶段 1:分析 echo "阶段 1:分析" claude --session-id "$TASK-stage1" -p "分析需求" # 阶段 2:设计 echo "阶段 2:设计" claude --resume "$TASK-stage1" -p "设计系统" # 阶段 3:实现 echo "阶段 3:实现" claude --resume "$TASK-stage2" -p "实现功能"

示例 3: 代码审查会话#

bash
#!/bin/bash # code-review-session.sh REVIEW_ID="review-$(date +%Y%m%d-%H%M%S)" # 开始审查 echo "开始代码审查: $REVIEW_ID" claude --session-id "$REVIEW_ID" -p "开始代码审查" # 恢复审查 echo "恢复代码审查: $REVIEW_ID" claude --resume "$REVIEW_ID"

示例 4: 学习会话#

bash
#!/bin/bash # learning-session.sh TOPIC=$1 SESSION_ID="learning-$TOPIC-$(date +%Y%m%d)" # 检查是否有学习会话 if [ -f "sessions/$SESSION_ID.json" ]; then echo "继续学习: $TOPIC" claude --resume "$SESSION_ID" else echo "开始学习: $TOPIC" claude --session-id "$SESSION_ID" -p "学习 $TOPIC" fi

会话生命周期#

1. 创建会话#

bash
# 创建新会话 claude --session-id my-new-session # 会话自动创建并保存

2. 恢复会话#

bash
# 恢复现有会话 claude --resume my-existing-session # 继续之前的对话

3. 更新会话#

bash
# 恢复会话并继续对话 claude --resume my-session # 新的对话会更新会话

4. 删除会话#

bash
# 删除会话 claude --delete-session my-session

会话管理技巧#

1. 命名约定#

bash
# 使用描述性的会话 ID claude --session-id "project-auth-module-20240115" claude --session-id "bugfix-login-issue-20240115" claude --session-id "learning-python-async-20240115"

2. 会话分组#

bash
# 使用前缀分组 claude --session-id "dev-auth-module" claude --session-id "dev-user-module" claude --session-id "test-auth-module"

3. 会话归档#

bash
#!/bin/bash # archive-sessions.sh ARCHIVE_DIR="archive/sessions" mkdir -p "$ARCHIVE_DIR" # 归档旧会话 for session in $(claude --list-sessions | grep "2023"); do claude --export-session "$session" > "$ARCHIVE_DIR/$session.json" claude --delete-session "$session" done echo "旧会话已归档"

4. 会话搜索#

bash
#!/bin/bash # search-sessions.sh KEYWORD=$1 # 搜索包含关键词的会话 claude --list-sessions | grep "$KEYWORD"

最佳实践#

1. 定期保存会话#

bash
# 为重要任务创建会话 claude --session-id "important-task-$(date +%Y%m%d-%H%M%S)"

2. 使用有意义的会话 ID#

bash
# 好的会话 ID claude --session-id "project-api-design-20240115" # 不好的会话 ID claude --session-id "session1"

3. 备份重要会话#

bash
#!/bin/bash # backup-important-sessions.sh BACKUP_DIR="backups/sessions" mkdir -p "$BACKUP_DIR" # 备份所有会话 for session in $(claude --list-sessions); do claude --export-session "$session" > "$BACKUP_DIR/$session.json" done echo "所有会话已备份"

4. 清理旧会话#

bash
#!/bin/bash # cleanup-old-sessions.sh # 删除 30 天前的会话 for session in $(claude --list-sessions | grep "2023"); do claude --delete-session "$session" done echo "旧会话已清理"

常见问题#

Q1: 如何查看所有可用的会话?#

A: 使用 claude --list-sessions 命令列出所有会话。

Q2: 会话会自动保存吗?#

A: 是的。会话会自动保存,除非显式删除。

Q3: 会话有大小限制吗?#

A: 有一定的限制。如果会话太大,建议创建新会话。

Q4: 可以导出会话吗?#

A: 可以。使用 claude --export-session <会话ID> 导出会话。

Q5: 可以在不同设备间共享会话吗?#

A: 可以。导出会话后,在另一个设备上导入。

与其他标志的组合示例#

1. 完整的项目开发流程#

bash
#!/bin/bash # project-development.sh PROJECT=$1 # 创建项目会话 SESSION_ID="project-$PROJECT-$(date +%Y%m%d)" # 阶段 1:需求分析 claude --session-id "$SESSION_ID" -p "分析需求" # 阶段 2:设计 claude --resume "$SESSION_ID" -p "设计系统" # 阶段 3:实现 claude --resume "$SESSION_ID" -p "实现功能" # 阶段 4:测试 claude --resume "$SESSION_ID" -p "生成测试"

2. 学习流程#

bash
#!/bin/bash # learning-flow.sh TOPIC=$1 SESSION_ID="learning-$TOPIC-$(date +%Y%m%d)" # 检查是否有学习会话 if [ -f "sessions/$SESSION_ID.json" ]; then echo "继续学习: $TOPIC" claude --resume "$SESSION_ID" else echo "开始学习: $TOPIC" claude --session-id "$SESSION_ID" -p "学习 $TOPIC" fi

3. Bug 修复流程#

bash
#!/bin/bash # bug-fix-flow.sh BUG_ID=$1 SESSION_ID="bugfix-$BUG_ID-$(date +%Y%m%d)" # 开始修复 claude --session-id "$SESSION_ID" -p "分析 bug: $BUG_ID" # 继续修复 claude --resume "$SESSION_ID" -p "实现修复" # 验证修复 claude --resume "$SESSION_ID" -p "验证修复"

总结#

--resume 标志提供了一种恢复之前会话的方式。通过使用此标志,您可以:

  • 继续中断的工作
  • 回顾历史对话
  • 在不同设备间同步会话
  • 实现分支开发

合理使用 --resume 可以帮助您更好地管理和组织工作,特别是在需要长时间或分阶段完成任务时。

标记本节教程为已读

记录您的学习进度,方便后续查看。